<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // Promise原型的then方法：
            // — then方法是同步绑定的，但是里面的回调函数是异步执行的，需要等到then的原型Promise状态发生改变后才执行
            // — then方法有两个参数，都是回调函数，分别处理Promise实例的成功状态和失败状态
            // — then的两个回调函数参数接收的值分别是Promise成功的值和Promise失败的值




        const p1 = new Promise((resolve, reject) => {
            console.log("请求A的数据........");
            try {
                // throw new Error("网络错误1")
                setTimeout(() => {
                    console.log("A的数据请求成功");

                    resolve("成功")
                }, 3000)
            } catch (e) {
                reject(e.message)
            }
        })


        const p2 = p1.then(() => {
            return new Promise((resolve, reject) => {
                console.log("请求B1的数据........");
                try {
                    throw new Error("网络错误2")
                    setTimeout(() => {
                        console.log("B1的数据请求成功");
                        resolve("成功")
                    }, 3000)
                } catch (e) {
                    reject(e.message)
                }
            })
        }, () => {
            return new Promise((resolve, reject) => {
                console.log("请求B2的数据........");
                try {
                    // throw new Error("网络错误3")
                    setTimeout(() => {
                        console.log("B2的数据请求成功");
                        resolve("成功")
                    }, 3000)
                } catch (e) {
                    reject(e.message)
                }
            })
        })


        console.log("p1", p1);
        console.log("p2", p2);
    </script>
</body>

</html>